package com.ericsson.enap.modules.ebmLog.mapper.vgc;

import com.ericsson.enap.modules.ebmLog.entity.vgc.Dimension;
import com.ericsson.enap.modules.ebmLog.entity.vgc.VgcEbmCcScc;
import com.ericsson.enap.modules.ebmLog.entity.vgc.VgcEbmEventVO;
import com.ericsson.enap.modules.ebmLog.entity.vgc.VgcEbmMainChart;
import com.ericsson.enap.modules.ebmLog.entity.vgc.amf.NciVO;
import com.ericsson.enap.modules.ebmLog.entity.vgc.amf.PagingSub;
import com.ericsson.enap.modules.ebmLog.entity.vgc.amf.TacVO;
import com.ericsson.enap.modules.sys.entity.EnipNetelement;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @description:VgcEbmLogMapper接口类
 * @author: wangjingshi
 * @create: 2021-11-09 16:36
 */
@Mapper
public interface VgcEbmLogMapper {

    List<EnipNetelement> queryNetelementList(@Param("bizType") Integer bizType, @Param("collectorIp") String collectorIp);

    @MapKey("event_type")
    Map<String, VgcEbmEventVO> eventMap(String netType);

    void dropEbmLogTable(String dropTable);

    void insertCcScc(@Param("ccSccMap")Map<VgcEbmCcScc, Long> ccSccMap,@Param("time")String time,@Param("tableName")String tableName);

    void insCcSccDeregistration(@Param("ccSccMap")Map<VgcEbmCcScc, Long> ccSccMap,@Param("time")String time,@Param("tableName")String tableName);

    void insCcSccPduSessionEstablishment(@Param("ccSccMap")Map<VgcEbmCcScc, Long> ccSccMap,@Param("time")String time,@Param("tableName")String tableName);

    void insCcSccHandover(@Param("ccSccMap")Map<VgcEbmCcScc, Long> ccSccMap,@Param("time")String time,@Param("tableName")String tableName);

    void insCcSccServiceRequest(@Param("ccSccMap")Map<VgcEbmCcScc, Long> ccSccMap,@Param("time")String time,@Param("tableName")String tableName);

    void createTable(String createTableSql);

    void insDeregistration(@Param("dimensionMap")Map<Dimension, Long> dimensionMap,@Param("time")String time,@Param("tableName")String tableName,@Param("k_name")String k_name);

    void insPduSessionEstablishment(@Param("dimensionMap")Map<Dimension, Long> dimensionMap,@Param("time")String time,@Param("tableName")String tableName,@Param("k_name")String k_name);

    void insHandover(@Param("dimensionMap")Map<Dimension, Long> dimensionMap,@Param("time")String time,@Param("tableName")String tableName,@Param("k_name")String k_name);

    void insServiceRequest(@Param("dimensionMap")Map<Dimension, Long> dimensionMap,@Param("time")String time,@Param("tableName")String tableName,@Param("k_name")String k_name);

    void insertDimension(@Param("dimensionMap")Map<Dimension, Long> dimensionMap,@Param("time")String time,@Param("tableName")String tableName,@Param("k_name")String k_name);

    int queryTableExist(String previousTableName);

    void insertPagingSub(@Param("dimensionMap")Map<PagingSub, Long> dimensionMap,@Param("time")String time,@Param("tableName")String tableName,@Param("k_name")String k_name);

    void insertPagingSub2(@Param("k_key")String k_key,@Param("event_result")int event_result,@Param("time")String time,@Param("tableName")String tableName,@Param("k_name")String k_name,@Param("value")Long value);

    void insertChart(@Param("newList")List<VgcEbmMainChart> newList,@Param("tableName")String tableName,@Param("time")String time);

    void insertChartDefault(@Param("list")List<Dimension> list,@Param("time")String time,@Param("tableName")String tableName);

    void insChartServiceRequest(@Param("list")List<Dimension> list,@Param("time")String time,@Param("tableName")String tableName);

    void insChartHandover(@Param("list")List<Dimension> list,@Param("time")String time,@Param("tableName")String tableName);

    void insChartPduSessionEstablishment(@Param("list")List<Dimension> list,@Param("time")String time,@Param("tableName")String tableName);

    void insChartDeregistration(@Param("list")List<Dimension> list,@Param("time")String time,@Param("tableName")String tableName);

    List<VgcEbmCcScc> selectCcSccTable(@Param("previousTableName")String previousTableName,@Param("time")String time);

    List<VgcEbmCcScc> selectServiceRequest(@Param("previousTableName")String previousTableName,@Param("time")String time);

    List<VgcEbmCcScc> selectHandover(@Param("previousTableName")String previousTableName,@Param("time")String time);

    List<VgcEbmCcScc> selectPduSessionEstablishment(@Param("previousTableName")String previousTableName,@Param("time")String time);

    List<VgcEbmCcScc> selectDeregistration(@Param("previousTableName")String previousTableName,@Param("time")String time);

    void insertTacTable(@Param("tacList")List<TacVO> tacList, @Param("dateTime")String dateTime, @Param("tableName")String tableName);

    void insertNciTable(@Param("nciList")List<NciVO> nciList, @Param("dateTime")String dateTime, @Param("tableName")String tableName);
}
